package com.ssy.lingxi.pay.service.eAccount;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.pay.api.dto.request.eAccount.EAccountQueryRequest;
import com.ssy.lingxi.pay.entity.allInPay.AllInPay;
import com.ssy.lingxi.pay.entity.allInPay.AllInPayAttach;
import org.springframework.data.domain.Page;

import java.util.Map;

/**
 * e账户管理-通联
 *
 * @author jw.chen
 * @version 2.0.0
 * @date 2021/12/2
 */
public interface IEAccountService {

    /**
     * 查询账户详情
     */
    AllInPay getAccountDetail(UserLoginCacheDTO sysUser);

    /**
     * 查询e账户主表
     *
     * @param id 主键id
     */
    AllInPay getAccountDetail(Long id);

    /**
     * 查询e账户附属表
     */
    AllInPayAttach getAccountAttachDetail(String bizUserId);

    /********************************************  平台后台  *************************************************************/
    /**
     * 查询会员资金账户
     *
     * @param pageVO               分页实体
     * @param eAccountQueryRequest 查询参数
     */
    Page<AllInPay> getPlatFormEAccountList(PageVO pageVO, EAccountQueryRequest eAccountQueryRequest);

    /**
     * 冻结/解冻e账户的会员状态
     *
     * @param memberId     会员id
     * @param memberRoleId 会员角色id
     * @param memberStatus 会员状态
     */
    void updateMemberAssetAccount(Long memberId, Long memberRoleId, Integer memberStatus);


    /**
     * 获取微信参数
     *
     * @param jsCode 微信小程序code
     */
    Map<String, String> getWechatParam(String jsCode);

    /**
     * 获取微信subAppId
     *
     * @return subAppId
     */
    String getWechatSubAppId();

}
